package datos;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import conexion.Conexion;


public class AccionesCategoria {

	public static ArrayList<Categoria> getAll(){
		ArrayList<Categoria> categorias=new ArrayList<Categoria>();
		try {
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from categoria");
			while (rs.next()){
				Categoria c=new Categoria (rs.getString("nombreCategoria"));
				c.setIdCategoria(rs.getInt("idCategoria"));
				categorias.add(c);
			}
			stm.close();
			Conexion.desconectar();
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return categorias;
	}
	
	public static Categoria getCategoriaById(int idCategoria){
		Categoria c = null;
		try {
			Statement s = Conexion.conectar().createStatement();
			ResultSet rs = s.executeQuery("SELECT * FROM categoria where idCategoria = '"+idCategoria+"'");
			while(rs.next()){
				c = new Categoria(rs.getString("nombreCategoria"));
				c.setIdCategoria(rs.getInt("idCategoria"));
			}
			
			//s.close();
			//Conexion.desconectar();
		} catch (Exception e) {
			e.printStackTrace();
		}
						
		return c;
		
	}
	
	public static void addCategoria(Categoria c){
		try{
			Statement stm=Conexion.conectar().createStatement();
			String nombre=c.getNombre();
//			System.out.println(nombre);
			stm.executeUpdate("insert into categoria (nombreCategoria) values('"+nombre+"')");
			stm.close();
			Conexion.desconectar();
		}catch (SQLException e){
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static boolean existeNombreCategoria(Categoria c){
		String nombre=c.getNombre();
		try {
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from categoria where nombreCategoria='"+nombre+"'");
			if(rs.next()){
				return true;
			}
			//stm.close();
			//Conexion.desconectar();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return false;
	}
	
	public static Categoria getCategoriaByNombre(String nombreCategoria) {
		Categoria categoria = null;
		try {
			Statement s = Conexion.conectar().createStatement();
			ResultSet rs = s.executeQuery("select * from categoria where nombreCategoria='"+nombreCategoria+"'");
			while(rs.next()){
				int idCategoria = rs.getInt("idCategoria");
				String nombre = rs.getString("nombreCategoria");
				categoria = new Categoria(nombre);
				categoria.setIdCategoria(idCategoria);
			}
			//s.close();
			//Conexion.desconectar();
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		
		return categoria;
	}
	public static Categoria getCategoriaByLinea(int idLinea){
		Categoria c=null;
		try{
			int idCategoria=0;
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from Linea where idLinea="+idLinea);
			while(rs.next()){
				idCategoria=rs.getInt("idCategoria");
			}
			c=AccionesCategoria.getCategoriaById(idCategoria);
		}catch(Exception e){
			e.printStackTrace();
		}
		return c;
	}
}
